[bug report] staging: ks7010: add driver from Nanonote extra-repository
Dan Carpenter
dan.carpenter at oracle.com
Fri Apr 28 13:41:33 UTC 2017
Hello Wolfram Sang,
The patch 13a9930d15b4: "staging: ks7010: add driver from Nanonote
extra-repository" from May 31, 2016, leads to the following static
checker warning:
drivers/staging/ks7010/ks_wlan_net.c:1141 ks_wlan_get_range()
warn: dead code because of 'i > 2' and 'i < 13'
drivers/staging/ks7010/ks_wlan_net.c
1062 static int ks_wlan_get_range(struct net_device *dev,
1063 struct iw_request_info *info,
1064 struct iw_point *dwrq, char *extra)
1065 {
1066 struct ks_wlan_private *priv =
1067 (struct ks_wlan_private *)netdev_priv(dev);
1068 struct iw_range *range = (struct iw_range *)extra;
1069 int i, k;
1070
1071 DPRINTK(2, "\n");
1072
1073 if (priv->sleep_mode == SLP_SLEEP)
1074 return -EPERM;
1075
1076 /* for SLEEP MODE */
1077 dwrq->length = sizeof(struct iw_range);
1078 memset(range, 0, sizeof(*range));
1079 range->min_nwid = 0x0000;
1080 range->max_nwid = 0x0000;
1081 range->num_channels = 14;
1082 /* Should be based on cap_rid.country to give only
1083 * what the current card support
1084 */
1085 k = 0;
1086 for (i = 0; i < 13; i++) { /* channel 1 -- 13 */
^^^^^^
1087 range->freq[k].i = i + 1; /* List index */
1088 range->freq[k].m = frequency_list[i] * 100000;
1089 range->freq[k++].e = 1; /* Values in table in MHz -> * 10^5 * 10 */
1090 }
i is always 13 after the loop.
1091 range->num_frequency = k;
1092 if (priv->reg.phy_type == D_11B_ONLY_MODE || priv->reg.phy_type == D_11BG_COMPATIBLE_MODE) { /* channel 14 */
1093 range->freq[13].i = 14; /* List index */
1094 range->freq[13].m = frequency_list[13] * 100000;
1095 range->freq[13].e = 1; /* Values in table in MHz -> * 10^5 * 10 */
1096 range->num_frequency = 14;
1097 }
1098
1099 /* Hum... Should put the right values there */
1100 range->max_qual.qual = 100;
1101 range->max_qual.level = 256 - 128; /* 0 dBm? */
1102 range->max_qual.noise = 256 - 128;
1103 range->sensitivity = 1;
1104
1105 if (priv->reg.phy_type == D_11B_ONLY_MODE) {
1106 range->bitrate[0] = 1e6;
1107 range->bitrate[1] = 2e6;
1108 range->bitrate[2] = 5.5e6;
1109 range->bitrate[3] = 11e6;
1110 range->num_bitrates = 4;
1111 } else { /* D_11G_ONLY_MODE or D_11BG_COMPATIBLE_MODE */
1112 range->bitrate[0] = 1e6;
1113 range->bitrate[1] = 2e6;
1114 range->bitrate[2] = 5.5e6;
1115 range->bitrate[3] = 11e6;
1116
1117 range->bitrate[4] = 6e6;
1118 range->bitrate[5] = 9e6;
1119 range->bitrate[6] = 12e6;
1120 if (IW_MAX_BITRATES < 9) {
1121 range->bitrate[7] = 54e6;
1122 range->num_bitrates = 8;
1123 } else {
1124 range->bitrate[7] = 18e6;
1125 range->bitrate[8] = 24e6;
1126 range->bitrate[9] = 36e6;
1127 range->bitrate[10] = 48e6;
1128 range->bitrate[11] = 54e6;
1129
1130 range->num_bitrates = 12;
1131 }
1132 }
1133
1134 /* Set an indication of the max TCP throughput
1135 * in bit/s that we can expect using this interface.
1136 * May be use for QoS stuff... Jean II
1137 */
1138 if (i > 2)
^^^^^
So this condition is always true. I'm not sure what was intended,
though.
1139 range->throughput = 5000 * 1000;
1140 else
1141 range->throughput = 1500 * 1000;
1142
regards,
dan carpenter
More information about the devel
mailing list