[PATCH] orinoco: Optimize orinoco_join_ap()
Signed-off-by: Pavel Roskin <proski@gnu.org> diff-tree cb289b9f9b2a0f3ae7070a008f22e383b37526ee (from 56bfcdb38b3d04c1f8c1fd705e411f4be53b663c) Author: Pavel Roskin <proski@gnu.org> Date: Thu Sep 1 19:05:16 2005 -0400 Optimize orinoco_join_ap() - break from loop once the requested BSSID is found. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
This commit is contained in:
parent
708218b064
commit
c89cc225f7
1 changed files with 11 additions and 7 deletions
|
@ -1053,8 +1053,9 @@ static void orinoco_join_ap(struct net_device *dev)
|
|||
u16 channel;
|
||||
} __attribute__ ((packed)) req;
|
||||
const int atom_len = offsetof(struct prism2_scan_apinfo, atim);
|
||||
struct prism2_scan_apinfo *atom;
|
||||
struct prism2_scan_apinfo *atom = NULL;
|
||||
int offset = 4;
|
||||
int found = 0;
|
||||
u8 *buf;
|
||||
u16 len;
|
||||
|
||||
|
@ -1089,15 +1090,18 @@ static void orinoco_join_ap(struct net_device *dev)
|
|||
* we were requested to join */
|
||||
for (; offset + atom_len <= len; offset += atom_len) {
|
||||
atom = (struct prism2_scan_apinfo *) (buf + offset);
|
||||
if (memcmp(&atom->bssid, priv->desired_bssid, ETH_ALEN) == 0)
|
||||
goto found;
|
||||
if (memcmp(&atom->bssid, priv->desired_bssid, ETH_ALEN) == 0) {
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
DEBUG(1, "%s: Requested AP not found in scan results\n",
|
||||
dev->name);
|
||||
goto out;
|
||||
if (! found) {
|
||||
DEBUG(1, "%s: Requested AP not found in scan results\n",
|
||||
dev->name);
|
||||
goto out;
|
||||
}
|
||||
|
||||
found:
|
||||
memcpy(req.bssid, priv->desired_bssid, ETH_ALEN);
|
||||
req.channel = atom->channel; /* both are little-endian */
|
||||
err = HERMES_WRITE_RECORD(hw, USER_BAP, HERMES_RID_CNFJOINREQUEST,
|
||||
|
|
Loading…
Reference in a new issue