• Patrick Williams's avatar
    tpm: fix NPE on probe for missing device · 84cc6958
    Patrick Williams authored
    When using the tpm_tis-spi driver on a system missing the physical TPM,
    a null pointer exception was observed.
    
        [    0.938677] Unable to handle kernel NULL pointer dereference at virtual address 00000004
        [    0.939020] pgd = 10c753cb
        [    0.939237] [00000004] *pgd=00000000
        [    0.939808] Internal error: Oops: 5 [#1] SMP ARM
        [    0.940157] CPU: 0 PID: 48 Comm: kworker/u4:1 Not tainted 5.15.10-dd1e40c #1
        [    0.940364] Hardware name: Generic DT based system
        [    0.940601] Workqueue: events_unbound async_run_entry_fn
        [    0.941048] PC is at tpm_tis_remove+0x28/0xb4
        [    0.941196] LR is at tpm_tis_core_init+0x170/0x6ac
    
    This is due to an attempt in 'tpm_tis_remove' to use the drvdata, which
    was not initialized in 'tpm_tis_core_init' prior to the first error.
    
    Move the initialization of drvdata earlier so 'tpm_tis_remove' has
    access to it.
    Signed-off-by: default avatarPatrick Williams <patrick@stwcx.xyz>
    Fixes: 79ca6f74 ("tpm: fix Atmel TPM crash caused by too frequent queries")
    Cc: stable@vger.kernel.org
    Reviewed-by: default avatarJarkko Sakkinen <jarkko@kernel.org>
    Signed-off-by: default avatarJarkko Sakkinen <jarkko@kernel.org>
    84cc6958
tpm_tis_core.c 28.3 KB