소스 검색

rsi: use BUILD_BUG_ON check for fsm_state

Whenever new fsm_state enum element is added, fsm_state array
also needs to be updated. If this change is missed, we may end
up doing invalid access in array. BUILD_BUG_ON check will help
to avoid this problem.

Signed-off-by: Amitkumar Karwar <amit.karwar@redpinesignals.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Amitkumar Karwar 8 년 전
부모
커밋
e0d0ae8a43
2개의 변경된 파일5개의 추가작업 그리고 1개의 파일을 삭제
  1. 2 0
      drivers/net/wireless/rsi/rsi_91x_debugfs.c
  2. 3 1
      drivers/net/wireless/rsi/rsi_main.h

+ 2 - 0
drivers/net/wireless/rsi/rsi_91x_debugfs.c

@@ -138,6 +138,8 @@ static int rsi_stats_read(struct seq_file *seq, void *data)
 	seq_puts(seq, "==> RSI STA DRIVER STATUS <==\n");
 	seq_puts(seq, "DRIVER_FSM_STATE: ");
 
+	BUILD_BUG_ON(ARRAY_SIZE(fsm_state) != NUM_FSM_STATES);
+
 	if (common->fsm_state <= FSM_MAC_INIT_DONE)
 		seq_printf(seq, "%s", fsm_state[common->fsm_state]);
 

+ 3 - 1
drivers/net/wireless/rsi/rsi_main.h

@@ -40,7 +40,9 @@ enum RSI_FSM_STATES {
 	FSM_RESET_MAC_SENT,
 	FSM_RADIO_CAPS_SENT,
 	FSM_BB_RF_PROG_SENT,
-	FSM_MAC_INIT_DONE
+	FSM_MAC_INIT_DONE,
+
+	NUM_FSM_STATES
 };
 
 extern u32 rsi_zone_enabled;