mirror of https://gitee.com/openkylin/linux.git
hostap: fix sparse warnings
Rewrite AID calculation in handle_pspoll() to avoid truncating bits. Make hostap_80211_header_parse() static, don't export it. Avoid shadowing variables. Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
15ea0ebc5b
commit
1bcca3c463
|
@ -64,7 +64,7 @@ int prism2_rx_80211(struct net_device *dev, struct sk_buff *skb,
|
||||||
int hdrlen, phdrlen, head_need, tail_need;
|
int hdrlen, phdrlen, head_need, tail_need;
|
||||||
u16 fc;
|
u16 fc;
|
||||||
int prism_header, ret;
|
int prism_header, ret;
|
||||||
struct ieee80211_hdr_4addr *hdr;
|
struct ieee80211_hdr_4addr *fhdr;
|
||||||
|
|
||||||
iface = netdev_priv(dev);
|
iface = netdev_priv(dev);
|
||||||
local = iface->local;
|
local = iface->local;
|
||||||
|
@ -83,8 +83,8 @@ int prism2_rx_80211(struct net_device *dev, struct sk_buff *skb,
|
||||||
phdrlen = 0;
|
phdrlen = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
hdr = (struct ieee80211_hdr_4addr *) skb->data;
|
fhdr = (struct ieee80211_hdr_4addr *) skb->data;
|
||||||
fc = le16_to_cpu(hdr->frame_ctl);
|
fc = le16_to_cpu(fhdr->frame_ctl);
|
||||||
|
|
||||||
if (type == PRISM2_RX_MGMT && (fc & IEEE80211_FCTL_VERS)) {
|
if (type == PRISM2_RX_MGMT && (fc & IEEE80211_FCTL_VERS)) {
|
||||||
printk(KERN_DEBUG "%s: dropped management frame with header "
|
printk(KERN_DEBUG "%s: dropped management frame with header "
|
||||||
|
|
|
@ -1930,7 +1930,7 @@ static void handle_pspoll(local_info_t *local,
|
||||||
PDEBUG(DEBUG_PS, " PSPOLL and AID[15:14] not set\n");
|
PDEBUG(DEBUG_PS, " PSPOLL and AID[15:14] not set\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
aid &= ~BIT(15) & ~BIT(14);
|
aid &= ~(BIT(15) | BIT(14));
|
||||||
if (aid == 0 || aid > MAX_AID_TABLE_SIZE) {
|
if (aid == 0 || aid > MAX_AID_TABLE_SIZE) {
|
||||||
PDEBUG(DEBUG_PS, " invalid aid=%d\n", aid);
|
PDEBUG(DEBUG_PS, " invalid aid=%d\n", aid);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -533,10 +533,10 @@ static void prism2_detach(struct pcmcia_device *link)
|
||||||
do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
|
do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
|
||||||
|
|
||||||
#define CFG_CHECK2(fn, retf) \
|
#define CFG_CHECK2(fn, retf) \
|
||||||
do { int ret = (retf); \
|
do { int _ret = (retf); \
|
||||||
if (ret != 0) { \
|
if (_ret != 0) { \
|
||||||
PDEBUG(DEBUG_EXTRA, "CardServices(" #fn ") returned %d\n", ret); \
|
PDEBUG(DEBUG_EXTRA, "CardServices(" #fn ") returned %d\n", _ret); \
|
||||||
cs_error(link, fn, ret); \
|
cs_error(link, fn, _ret); \
|
||||||
goto next_entry; \
|
goto next_entry; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
|
@ -2835,7 +2835,7 @@ static void hostap_passive_scan(unsigned long data)
|
||||||
{
|
{
|
||||||
local_info_t *local = (local_info_t *) data;
|
local_info_t *local = (local_info_t *) data;
|
||||||
struct net_device *dev = local->dev;
|
struct net_device *dev = local->dev;
|
||||||
u16 channel;
|
u16 chan;
|
||||||
|
|
||||||
if (local->passive_scan_interval <= 0)
|
if (local->passive_scan_interval <= 0)
|
||||||
return;
|
return;
|
||||||
|
@ -2872,11 +2872,11 @@ static void hostap_passive_scan(unsigned long data)
|
||||||
|
|
||||||
printk(KERN_DEBUG "%s: passive scan channel %d\n",
|
printk(KERN_DEBUG "%s: passive scan channel %d\n",
|
||||||
dev->name, local->passive_scan_channel);
|
dev->name, local->passive_scan_channel);
|
||||||
channel = local->passive_scan_channel;
|
chan = local->passive_scan_channel;
|
||||||
local->passive_scan_state = PASSIVE_SCAN_WAIT;
|
local->passive_scan_state = PASSIVE_SCAN_WAIT;
|
||||||
local->passive_scan_timer.expires = jiffies + HZ / 10;
|
local->passive_scan_timer.expires = jiffies + HZ / 10;
|
||||||
} else {
|
} else {
|
||||||
channel = local->channel;
|
chan = local->channel;
|
||||||
local->passive_scan_state = PASSIVE_SCAN_LISTEN;
|
local->passive_scan_state = PASSIVE_SCAN_LISTEN;
|
||||||
local->passive_scan_timer.expires = jiffies +
|
local->passive_scan_timer.expires = jiffies +
|
||||||
local->passive_scan_interval * HZ;
|
local->passive_scan_interval * HZ;
|
||||||
|
@ -2884,9 +2884,9 @@ static void hostap_passive_scan(unsigned long data)
|
||||||
|
|
||||||
if (hfa384x_cmd_callback(dev, HFA384X_CMDCODE_TEST |
|
if (hfa384x_cmd_callback(dev, HFA384X_CMDCODE_TEST |
|
||||||
(HFA384X_TEST_CHANGE_CHANNEL << 8),
|
(HFA384X_TEST_CHANGE_CHANNEL << 8),
|
||||||
channel, NULL, 0))
|
chan, NULL, 0))
|
||||||
printk(KERN_ERR "%s: passive scan channel set %d "
|
printk(KERN_ERR "%s: passive scan channel set %d "
|
||||||
"failed\n", dev->name, channel);
|
"failed\n", dev->name, chan);
|
||||||
|
|
||||||
add_timer(&local->passive_scan_timer);
|
add_timer(&local->passive_scan_timer);
|
||||||
}
|
}
|
||||||
|
|
|
@ -594,7 +594,8 @@ void hostap_dump_tx_header(const char *name, const struct hfa384x_tx_frame *tx)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int hostap_80211_header_parse(const struct sk_buff *skb, unsigned char *haddr)
|
static int hostap_80211_header_parse(const struct sk_buff *skb,
|
||||||
|
unsigned char *haddr)
|
||||||
{
|
{
|
||||||
struct hostap_interface *iface = netdev_priv(skb->dev);
|
struct hostap_interface *iface = netdev_priv(skb->dev);
|
||||||
local_info_t *local = iface->local;
|
local_info_t *local = iface->local;
|
||||||
|
@ -857,7 +858,6 @@ const struct header_ops hostap_80211_ops = {
|
||||||
.rebuild = eth_rebuild_header,
|
.rebuild = eth_rebuild_header,
|
||||||
.cache = eth_header_cache,
|
.cache = eth_header_cache,
|
||||||
.cache_update = eth_header_cache_update,
|
.cache_update = eth_header_cache_update,
|
||||||
|
|
||||||
.parse = hostap_80211_header_parse,
|
.parse = hostap_80211_header_parse,
|
||||||
};
|
};
|
||||||
EXPORT_SYMBOL(hostap_80211_ops);
|
EXPORT_SYMBOL(hostap_80211_ops);
|
||||||
|
@ -1150,7 +1150,6 @@ EXPORT_SYMBOL(hostap_set_roaming);
|
||||||
EXPORT_SYMBOL(hostap_set_auth_algs);
|
EXPORT_SYMBOL(hostap_set_auth_algs);
|
||||||
EXPORT_SYMBOL(hostap_dump_rx_header);
|
EXPORT_SYMBOL(hostap_dump_rx_header);
|
||||||
EXPORT_SYMBOL(hostap_dump_tx_header);
|
EXPORT_SYMBOL(hostap_dump_tx_header);
|
||||||
EXPORT_SYMBOL(hostap_80211_header_parse);
|
|
||||||
EXPORT_SYMBOL(hostap_80211_get_hdrlen);
|
EXPORT_SYMBOL(hostap_80211_get_hdrlen);
|
||||||
EXPORT_SYMBOL(hostap_get_stats);
|
EXPORT_SYMBOL(hostap_get_stats);
|
||||||
EXPORT_SYMBOL(hostap_setup_dev);
|
EXPORT_SYMBOL(hostap_setup_dev);
|
||||||
|
|
Loading…
Reference in New Issue