rndis_wlan: Remove logically dead code

caps_buf is always of size sizeof(*caps) because
sizeof(caps->auth_encr_pair) * 16 is always zero. Notice
that when using zero-length arrays, sizeof evaluates to zero[1].

So, the code introduced by
commit 0308383f95 ("rndis_wlan: get max_num_pmkids from device")
is logically dead, hence is never executed and can be removed. As a
consequence, the rest of the related code can be refactored a bit.

Notice that this code has been out there since March 2010.

[1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20200505235205.GA18539@embeddedor
Link: https://lore.kernel.org/r/20200507110741.37757-1-yanaijie@huawei.com
This commit is contained in:
Gustavo A. R. Silva 2020-05-05 18:52:05 -05:00 committed by Kalle Valo
parent 78a6fb42f6
commit f2cd32a443
1 changed files with 8 additions and 16 deletions

View File

@ -312,17 +312,11 @@ struct ndis_80211_assoc_info {
__le32 offset_resp_ies; __le32 offset_resp_ies;
} __packed; } __packed;
struct ndis_80211_auth_encr_pair {
__le32 auth_mode;
__le32 encr_mode;
} __packed;
struct ndis_80211_capability { struct ndis_80211_capability {
__le32 length; __le32 length;
__le32 version; __le32 version;
__le32 num_pmkids; __le32 num_pmkids;
__le32 num_auth_encr_pair; __le32 num_auth_encr_pair;
struct ndis_80211_auth_encr_pair auth_encr_pair[0];
} __packed; } __packed;
struct ndis_80211_bssid_info { struct ndis_80211_bssid_info {
@ -3109,8 +3103,7 @@ static int rndis_wlan_get_caps(struct usbnet *usbdev, struct wiphy *wiphy)
__le32 num_items; __le32 num_items;
__le32 items[8]; __le32 items[8];
} networks_supported; } networks_supported;
struct ndis_80211_capability *caps; struct ndis_80211_capability caps;
u8 caps_buf[sizeof(*caps) + sizeof(caps->auth_encr_pair) * 16];
int len, retval, i, n; int len, retval, i, n;
struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev); struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
@ -3140,19 +3133,18 @@ static int rndis_wlan_get_caps(struct usbnet *usbdev, struct wiphy *wiphy)
} }
/* get device 802.11 capabilities, number of PMKIDs */ /* get device 802.11 capabilities, number of PMKIDs */
caps = (struct ndis_80211_capability *)caps_buf; len = sizeof(caps);
len = sizeof(caps_buf);
retval = rndis_query_oid(usbdev, retval = rndis_query_oid(usbdev,
RNDIS_OID_802_11_CAPABILITY, RNDIS_OID_802_11_CAPABILITY,
caps, &len); &caps, &len);
if (retval >= 0) { if (retval >= 0) {
netdev_dbg(usbdev->net, "RNDIS_OID_802_11_CAPABILITY -> len %d, " netdev_dbg(usbdev->net, "RNDIS_OID_802_11_CAPABILITY -> len %d, "
"ver %d, pmkids %d, auth-encr-pairs %d\n", "ver %d, pmkids %d, auth-encr-pairs %d\n",
le32_to_cpu(caps->length), le32_to_cpu(caps.length),
le32_to_cpu(caps->version), le32_to_cpu(caps.version),
le32_to_cpu(caps->num_pmkids), le32_to_cpu(caps.num_pmkids),
le32_to_cpu(caps->num_auth_encr_pair)); le32_to_cpu(caps.num_auth_encr_pair));
wiphy->max_num_pmkids = le32_to_cpu(caps->num_pmkids); wiphy->max_num_pmkids = le32_to_cpu(caps.num_pmkids);
} else } else
wiphy->max_num_pmkids = 0; wiphy->max_num_pmkids = 0;