linux-stable/drivers/char/tpm
Patrick Williams 84cc695897 tpm: fix NPE on probe for missing device
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: Patrick Williams <patrick@stwcx.xyz>
Fixes: 79ca6f74da ("tpm: fix Atmel TPM crash caused by too frequent queries")
Cc: stable@vger.kernel.org
Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
2022-01-09 00:18:51 +02:00
..
eventlog tpm: vtpm_proxy: Avoid reading host log when using a virtual device 2021-04-14 16:30:30 +03:00
st33zp24 tpm/st33zp24: drop unneeded over-commenting 2022-01-09 00:18:37 +02:00
Kconfig tpm: tis: Kconfig: Add helper dependency on COMPILE_TEST 2021-10-26 05:03:33 +03:00
Makefile
tpm-chip.c tpm: fix potential NULL pointer access in tpm_del_char_device 2022-01-09 00:18:49 +02:00
tpm-dev-common.c
tpm-dev.c
tpm-dev.h
tpm-interface.c
tpm-sysfs.c tpm: Add Upgrade/Reduced mode support for TPM2 modules 2022-01-09 00:18:47 +02:00
tpm.h
tpm1-cmd.c tpm: fix some doc warnings in tpm1-cmd.c 2021-06-23 16:51:03 +03:00
tpm2-cmd.c tpm: Add Upgrade/Reduced mode support for TPM2 modules 2022-01-09 00:18:47 +02:00
tpm2-space.c tpm: Check for integer overflow in tpm2_map_response_body() 2021-10-26 05:03:33 +03:00
tpm_atmel.c
tpm_atmel.h
tpm_crb.c tpm_crb: Use IOMEM_ERR_PTR when function returns iomem 2021-06-23 16:51:03 +03:00
tpm_ftpm_tee.c tpm_ftpm_tee: Free and unregister TEE shared memory during kexec 2021-07-21 07:55:50 +02:00
tpm_ftpm_tee.h
tpm_i2c_atmel.c
tpm_i2c_infineon.c
tpm_i2c_nuvoton.c
tpm_ibmvtpm.c tpm: ibmvtpm: Avoid error message when process gets signal while waiting 2021-08-23 19:55:42 +03:00
tpm_ibmvtpm.h tpm: ibmvtpm: Avoid error message when process gets signal while waiting 2021-08-23 19:55:42 +03:00
tpm_infineon.c
tpm_nsc.c
tpm_ppi.c
tpm_tis.c tpm_tis: Use DEFINE_RES_MEM() to simplify code 2021-06-23 16:51:03 +03:00
tpm_tis_core.c tpm: fix NPE on probe for missing device 2022-01-09 00:18:51 +02:00
tpm_tis_core.h tpm: fix Atmel TPM crash caused by too frequent queries 2021-10-26 05:03:34 +03:00
tpm_tis_i2c_cr50.c char: tpm: cr50: Set TPM_FIRMWARE_POWER_MANAGED based on device property 2022-01-09 00:18:45 +02:00
tpm_tis_spi.h
tpm_tis_spi_cr50.c char: tpm: cr50: Set TPM_FIRMWARE_POWER_MANAGED based on device property 2022-01-09 00:18:45 +02:00
tpm_tis_spi_main.c tpm_tis_spi: Add missing SPI ID 2021-10-26 05:03:34 +03:00
tpm_tis_synquacer.c
tpm_vtpm_proxy.c
tpmrm-dev.c
xen-tpmfront.c