mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-13 16:50:05 +00:00
spi: fsl-dspi: Remove possible memory leak of 'chip'
Move the check for spi->bits_per_word before allocation, to avoid memory leak. Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
9298bc7273
commit
ceadfd8de0
@ -347,6 +347,13 @@ static int dspi_setup(struct spi_device *spi)
|
||||
struct fsl_dspi *dspi = spi_master_get_devdata(spi->master);
|
||||
unsigned char br = 0, pbr = 0, fmsz = 0;
|
||||
|
||||
if ((spi->bits_per_word >= 4) && (spi->bits_per_word <= 16)) {
|
||||
fmsz = spi->bits_per_word - 1;
|
||||
} else {
|
||||
pr_err("Invalid wordsize\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
/* Only alloc on first setup */
|
||||
chip = spi_get_ctldata(spi);
|
||||
if (chip == NULL) {
|
||||
@ -357,12 +364,6 @@ static int dspi_setup(struct spi_device *spi)
|
||||
|
||||
chip->mcr_val = SPI_MCR_MASTER | SPI_MCR_PCSIS |
|
||||
SPI_MCR_CLR_TXF | SPI_MCR_CLR_RXF;
|
||||
if ((spi->bits_per_word >= 4) && (spi->bits_per_word <= 16)) {
|
||||
fmsz = spi->bits_per_word - 1;
|
||||
} else {
|
||||
pr_err("Invalid wordsize\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
chip->void_write_data = 0;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user