]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
ata: sata_sx4: Add error handling in pdc20621_i2c_read()
authorWentao Liang <vulab@iscas.ac.cn>
Tue, 8 Apr 2025 07:30:01 +0000 (15:30 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 20 Apr 2025 08:15:08 +0000 (10:15 +0200)
commit0ae84adbc9cc62d01e9846a767cc39c97a9e9694
treee3229cff3f240e9ce777dc2a2ec91688731ddb65
parentad81d666e114ebf989fc9994d4c93d451dc60056
ata: sata_sx4: Add error handling in pdc20621_i2c_read()

[ Upstream commit 8d46a27085039158eb5e253ab8a35a0e33b5e864 ]

The function pdc20621_prog_dimm0() calls the function pdc20621_i2c_read()
but does not handle the error if the read fails. This could lead to
process with invalid data. A proper implementation can be found in
/source/drivers/ata/sata_sx4.c, pdc20621_prog_dimm_global(). As mentioned
in its commit: bb44e154e25125bef31fa956785e90fccd24610b, the variable spd0
might be used uninitialized when pdc20621_i2c_read() fails.

Add error handling to pdc20621_i2c_read(). If a read operation fails,
an error message is logged via dev_err(), and return a negative error
code.

Add error handling to pdc20621_prog_dimm0() in pdc20621_dimm_init(), and
return a negative error code if pdc20621_prog_dimm0() fails.

Fixes: 4447d3515616 ("libata: convert the remaining SATA drivers to new init model")
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
Reviewed-by: Niklas Cassel <cassel@kernel.org>
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/ata/sata_sx4.c