u8 wcmd_id;
        struct qcom_swrm_port_config pconfig[QCOM_SDW_MAX_PORTS];
        struct sdw_stream_runtime *sruntime[SWRM_MAX_DAIS];
-       enum sdw_slave_status status[SDW_MAX_DEVICES];
+       enum sdw_slave_status status[SDW_MAX_DEVICES + 1];
        int (*reg_read)(struct qcom_swrm_ctrl *ctrl, int reg, u32 *val);
        int (*reg_write)(struct qcom_swrm_ctrl *ctrl, int reg, int val);
        u32 slave_status;
 
        ctrl->reg_read(ctrl, SWRM_MCP_SLV_STATUS, &val);
 
-       for (dev_num = 0; dev_num < SDW_MAX_DEVICES; dev_num++) {
+       for (dev_num = 0; dev_num <= SDW_MAX_DEVICES; dev_num++) {
                status = (val >> (dev_num * SWRM_MCP_SLV_STATUS_SZ));
 
                if ((status & SWRM_MCP_SLV_STATUS_MASK) == SDW_SLAVE_ALERT) {
        ctrl->reg_read(ctrl, SWRM_MCP_SLV_STATUS, &val);
        ctrl->slave_status = val;
 
-       for (i = 0; i < SDW_MAX_DEVICES; i++) {
+       for (i = 0; i <= SDW_MAX_DEVICES; i++) {
                u32 s;
 
                s = (val >> (i * 2));