ath10k: make wmi_service_name() warn about missing service ids
authorKalle Valo <kvalo@codeaurora.org>
Mon, 11 Feb 2019 16:48:04 +0000 (18:48 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 12 Feb 2019 18:49:16 +0000 (20:49 +0200)
When adding a new value to enum wmi_service it's very easy to miss that the new
value should be also added to wmi_service_name() mapping function. Modify the
function so that GCC can now warn about this:

drivers/net/wireless/ath/ath10k/wmi.h:385:2: warning: enumeration value 'WMI_SERVICE_FOO' not handled in switch [-Wswitch]

And also add a reminder to the enum.

Thanks to Jouni Malinen for the idea.

Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ath/ath10k/wmi.h

index 2a3cc45f335905148770b3a289b756e9afeeaeaa..370124eb4fd8b22df484f9318af49e4572017cb6 100644 (file)
@@ -212,6 +212,8 @@ enum wmi_service {
        WMI_SERVICE_PER_PACKET_SW_ENCRYPT,
        WMI_SERVICE_REPORT_AIRTIME,
 
+       /* Remember to add the new value to wmi_service_name()! */
+
        /* keep last */
        WMI_SERVICE_MAX,
 };
@@ -378,7 +380,7 @@ enum wmi_10_4_service {
        WMI_10_4_SERVICE_REPORT_AIRTIME,
 };
 
-static inline char *wmi_service_name(int service_id)
+static inline char *wmi_service_name(enum wmi_service service_id)
 {
 #define SVCSTR(x) case x: return #x
 
@@ -501,11 +503,13 @@ static inline char *wmi_service_name(int service_id)
        SVCSTR(WMI_SERVICE_PER_PACKET_SW_ENCRYPT);
        SVCSTR(WMI_SERVICE_REPORT_AIRTIME);
 
-       default:
+       case WMI_SERVICE_MAX:
                return NULL;
        }
 
 #undef SVCSTR
+
+       return NULL;
 }
 
 #define WMI_SERVICE_IS_ENABLED(wmi_svc_bmap, svc_id, len) \