diff --git a/drivers/spi/q2spi-msm-geni.c b/drivers/spi/q2spi-msm-geni.c index 7c6a3e3c759a..e60b468b1601 100644 --- a/drivers/spi/q2spi-msm-geni.c +++ b/drivers/spi/q2spi-msm-geni.c @@ -1379,6 +1379,11 @@ static ssize_t q2spi_transfer(struct file *filp, const char __user *buf, size_t if (!q2spi_cmd_type_valid(q2spi_req)) return -EINVAL; + if (q2spi_req.addr > Q2SPI_SLAVE_END_ADDR) { + Q2SPI_ERROR(q2spi, "%s Err Invalid address:%x\n", __func__, q2spi_req.addr); + return -EINVAL; + } + if (q2spi_req.cmd == HRF_WRITE) { q2spi_req.addr = Q2SPI_HRF_PUSH_ADDRESS; q2spi_req.sync = 1; diff --git a/drivers/spi/q2spi-slave-reg.h b/drivers/spi/q2spi-slave-reg.h index 396945d54c18..e45f56e53d63 100644 --- a/drivers/spi/q2spi-slave-reg.h +++ b/drivers/spi/q2spi-slave-reg.h @@ -24,7 +24,7 @@ #define Q2SPI_CLIENT_STATE 0x00000048 #define Q2SPI_RUNTIME_STATUS 0x0000004C #define Q2SPI_TDB_FREE_SPACE 0x00000050 -#define Q2SPI_SLAVE_ERROR 0x00000054 +#define Q2SPI_SLAVE_ERROR 0x00000054 #define Q2SPI_HDR_ERROR 0x00000058 #define Q2SPI_ERROR_EN 0x0000005C #define Q2SPI_SMA_DATA(n) (0x00000070 + (0x4 * (n))) @@ -33,4 +33,5 @@ #define Q2SPI_SMA_CTRL 0x00000088 #define Q2SPI_PURGE_COMPLETE 0x0000008C #define Q2SPI_HOST_CFG 0x00000090 +#define Q2SPI_SLAVE_END_ADDR 0x00000090 #endif /* _SPI_Q2SPI_SLAVE_H_ */