gsm/a5: Return -ENOTSUP if the selected cipher is not supported

Extracted from a patch by Max Suraev Max.Suraev@fairwaves.ru>

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
diff --git a/src/gsm/a5.c b/src/gsm/a5.c
index 356060a..de821e8 100644
--- a/src/gsm/a5.c
+++ b/src/gsm/a5.c
@@ -34,6 +34,7 @@
  *  \brief Osmocom GSM A5 ciphering algorithm implementation
  */
 
+#include <errno.h>
 #include <string.h>
 
 #include <osmocom/gsm/a5.h>
@@ -44,11 +45,12 @@
  *  \param[in] fn Frame number
  *  \param[out] dl Pointer to array of ubits to return Downlink cipher stream
  *  \param[out] ul Pointer to array of ubits to return Uplink cipher stream
+ *  \returns 0 for success, -ENOTSUP for invalid cipher selection.
  *
  * Currently A5/[0-2] are supported.
  * Either (or both) of dl/ul can be NULL if not needed.
  */
-void
+int
 osmo_a5(int n, const uint8_t *key, uint32_t fn, ubit_t *dl, ubit_t *ul)
 {
 	switch (n)
@@ -70,8 +72,10 @@
 
 	default:
 		/* a5/[3..7] not supported here/yet */
-		break;
+		return -ENOTSUP;
 	}
+
+	return 0;
 }