summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-08-01 14:30:10 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-08-03 08:53:31 +0200
commit29e7a069f8b33021799f432ff977d21a163ffafe (patch)
treea55f27df99d83607ae080660f9e267a59c56a784
parentrtems: Add rtems_interrupt_server_create() (diff)
downloadrtems-29e7a069f8b33021799f432ff977d21a163ffafe.tar.bz2
dev/spi-memdrv: Fix use of uninit mem_param_ptr
-rw-r--r--bsps/shared/dev/i2c/spi-memdrv.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/bsps/shared/dev/i2c/spi-memdrv.c b/bsps/shared/dev/i2c/spi-memdrv.c
index 593029732e..f3308e8fe1 100644
--- a/bsps/shared/dev/i2c/spi-memdrv.c
+++ b/bsps/shared/dev/i2c/spi-memdrv.c
@@ -365,26 +365,23 @@ rtems_status_code spi_memdrv_read
rc = rtems_libi2c_send_addr(minor,TRUE);
}
- if (off >= mem_param_ptr->mem_size) {
+ if (rc == RTEMS_SUCCESSFUL) {
/*
* HACK: beyond size of memory array? then read status register instead
*/
- /*
- * send read status register command
- */
- if (rc == RTEMS_SUCCESSFUL) {
+ if (off >= mem_param_ptr->mem_size) {
+ /*
+ * send read status register command
+ */
cmdbuf[0] = SPI_MEM_CMD_RDSR;
ret_cnt = rtems_libi2c_write_bytes(minor,cmdbuf,1);
if (ret_cnt < 0) {
rc = -ret_cnt;
}
- }
- }
- else {
- /*
- * send read command and address
- */
- if (rc == RTEMS_SUCCESSFUL) {
+ } else {
+ /*
+ * send read command and address
+ */
cmdbuf[0] = SPI_MEM_CMD_READ;
if (mem_param_ptr->mem_size > 0x10000 /* 256*256 */) {
cmdbuf[1] = (off >> 16) & 0xff;