Skip to content

Commit

Permalink
[PATCH] orinoco: Optimize orinoco_join_ap()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Pavel Roskin authored and Jeff Garzik committed Sep 5, 2005
1 parent 708218b commit c89cc22
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions drivers/net/wireless/orinoco.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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,
Expand Down

0 comments on commit c89cc22

Please sign in to comment.