All of lore.kernel.org
 help / color / mirror / Atom feed
From: Quytelda Kahja <quytelda@tamalin.org>
To: gregkh@linuxfoundation.org, wsa@the-dreams.de
Cc: devel@driverdev.osuosl.org,
	driverdev-devel@linuxdriverproject.org,
	linux-kernel@vger.kernel.org,
	Quytelda Kahja <quytelda@tamalin.org>
Subject: [PATCH 1/6] staging: ks7010: Factor out repeated code.
Date: Thu, 15 Mar 2018 23:26:59 -0700	[thread overview]
Message-ID: <20180316062704.2713-1-quytelda@tamalin.org> (raw)

Some of the code for reading IEs is replicated multiple times in the
switch statement for get_ap_information().  Factor that code out into
read_ie().

Signed-off-by: Quytelda Kahja <quytelda@tamalin.org>
---
 drivers/staging/ks7010/ks_hostif.c | 48 +++++++++++++++++---------------------
 1 file changed, 22 insertions(+), 26 deletions(-)

diff --git a/drivers/staging/ks7010/ks_hostif.c b/drivers/staging/ks7010/ks_hostif.c
index 05f7be4638fe..a946ce76f899 100644
--- a/drivers/staging/ks7010/ks_hostif.c
+++ b/drivers/staging/ks7010/ks_hostif.c
@@ -223,6 +223,21 @@ int get_current_ap(struct ks_wlan_private *priv, struct link_ap_info_t *ap_info)
 	return 0;
 }
 
+static u8 read_ie(unsigned char *bp, u8 max, u8 *body, char *name)
+{
+	u8 size;
+
+	if (*(bp + 1) <= max) {
+		size = *(bp + 1);
+	} else {
+		DPRINTK(1, "size over :: %s size=%d\n", name, *(bp + 1));
+		size = max;
+	}
+
+	memcpy(body, bp + 2, size);
+	return size;
+}
+
 static
 int get_ap_information(struct ks_wlan_private *priv, struct ap_info_t *ap_info,
 		       struct local_ap_t *ap)
@@ -253,14 +268,8 @@ int get_ap_information(struct ks_wlan_private *priv, struct ap_info_t *ap_info,
 	while (bsize > offset) {
 		switch (*bp) { /* Information Element ID */
 		case WLAN_EID_SSID:
-			if (*(bp + 1) <= IEEE80211_MAX_SSID_LEN) {
-				ap->ssid.size = *(bp + 1);
-			} else {
-				DPRINTK(1, "size over :: ssid size=%d\n",
-					*(bp + 1));
-				ap->ssid.size = IEEE80211_MAX_SSID_LEN;
-			}
-			memcpy(ap->ssid.body, bp + 2, ap->ssid.size);
+			ap->ssid.size = read_ie(bp, IEEE80211_MAX_SSID_LEN,
+						ap->ssid.body, "ssid");
 			break;
 		case WLAN_EID_SUPP_RATES:
 		case WLAN_EID_EXT_SUPP_RATES:
@@ -283,28 +292,15 @@ int get_ap_information(struct ks_wlan_private *priv, struct ap_info_t *ap_info,
 			break;
 		case WLAN_EID_RSN:
 			ap->rsn_ie.id = *bp;
-			if (*(bp + 1) <= RSN_IE_BODY_MAX) {
-				ap->rsn_ie.size = *(bp + 1);
-			} else {
-				DPRINTK(1, "size over :: rsn size=%d\n",
-					*(bp + 1));
-				ap->rsn_ie.size = RSN_IE_BODY_MAX;
-			}
-			memcpy(ap->rsn_ie.body, bp + 2, ap->rsn_ie.size);
+			ap->rsn_ie.size = read_ie(bp, RSN_IE_BODY_MAX,
+						  ap->rsn_ie.body, "rsn");
 			break;
 		case WLAN_EID_VENDOR_SPECIFIC: /* WPA */
 			if (memcmp(bp + 2, CIPHER_ID_WPA_WEP40, 4) == 0) { /* WPA OUI check */
 				ap->wpa_ie.id = *bp;
-				if (*(bp + 1) <= RSN_IE_BODY_MAX) {
-					ap->wpa_ie.size = *(bp + 1);
-				} else {
-					DPRINTK(1,
-						"size over :: wpa size=%d\n",
-						*(bp + 1));
-					ap->wpa_ie.size = RSN_IE_BODY_MAX;
-				}
-				memcpy(ap->wpa_ie.body, bp + 2,
-				       ap->wpa_ie.size);
+				ap->wpa_ie.size = read_ie(bp, RSN_IE_BODY_MAX,
+							  ap->wpa_ie.body,
+							  "wpa");
 			}
 			break;
 
-- 
2.16.2

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

             reply	other threads:[~2018-03-16  6:26 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-16  6:26 Quytelda Kahja [this message]
2018-03-19 18:51 ` [PATCH 1/6] staging: ks7010: Factor out repeated code Greg KH
2018-03-20  5:58   ` Quytelda Kahja
2018-03-20  5:58     ` [PATCH 2/6] staging: ks7010: Factor out code into helper methods Quytelda Kahja
2018-03-20  5:58     ` [PATCH 3/6] staging: ks7010: Remove unnecessary parentheses Quytelda Kahja
2018-03-22 17:19       ` Greg KH
2018-03-20  5:58     ` [PATCH 4/6] staging: ks7010: Remove unnecessary braces Quytelda Kahja
2018-03-20  5:58     ` [PATCH 5/6] staging: ks7010: Fix line over 80 characters Quytelda Kahja
2018-03-20  6:08       ` Joe Perches
2018-03-20  5:58     ` [PATCH 6/6] staging: ks7010: Factor out repeated request initialization code Quytelda Kahja
2018-03-22 17:19       ` Greg KH
2018-03-22 17:20     ` [PATCH 1/6] staging: ks7010: Factor out repeated code Greg KH
2018-03-23  5:07       ` [PATCH 1/7] staging: ks7010: Fix line over 80 characters Quytelda Kahja
2018-03-23  5:07         ` [PATCH 2/7] staging: ks7010: Fix lines over 80 characters due to comments Quytelda Kahja
2018-03-23  5:07         ` [PATCH 3/7] staging: ks7010: Factor out common members in request structs Quytelda Kahja
2018-03-23 14:58           ` Greg KH
2018-03-23 14:58             ` Greg KH
2018-03-24  6:40             ` [PATCH 1/2] staging: ks7010: Remove trailing "_t" from all structure names Quytelda Kahja
2018-03-24  6:40               ` [PATCH 2/2] staging: ks7010: Fix spelling mistakes Quytelda Kahja
2018-03-28 11:50               ` [PATCH 1/2] staging: ks7010: Remove trailing "_t" from all structure names Greg KH
2018-03-23  5:07         ` [PATCH 4/7] staging: ks7010: Remove duplicate #define's Quytelda Kahja
2018-03-23  5:07         ` [PATCH 5/7] staging: ks7010: Replace memcmp() operation with ether_addr_equal() Quytelda Kahja
2018-03-23  5:07         ` [PATCH 6/7] staging: ks7010: Factor out repeated code for reading IEs Quytelda Kahja
2018-03-23  5:07         ` [PATCH 7/7] staging: ks7010: Remove hostif_infrastructure_set2_request_t Quytelda Kahja

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180316062704.2713-1-quytelda@tamalin.org \
    --to=quytelda@tamalin.org \
    --cc=devel@driverdev.osuosl.org \
    --cc=driverdev-devel@linuxdriverproject.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=wsa@the-dreams.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.