tree 08d8d46b486a3517f94e1c3d9077dbb156dcbd73
parent 708218b064e3ad3d55ac0f9d19b3c8c0fb7af3a4
author Pavel Roskin <[EMAIL PROTECTED]> Fri, 02 Sep 2005 04:06:06 -0400
committer Jeff Garzik <[EMAIL PROTECTED]> Tue, 06 Sep 2005 02:14:07 -0400

[PATCH] orinoco: Optimize orinoco_join_ap()

Signed-off-by: Pavel Roskin <[EMAIL PROTECTED]>

diff-tree cb289b9f9b2a0f3ae7070a008f22e383b37526ee (from 
56bfcdb38b3d04c1f8c1fd705e411f4be53b663c)
Author: Pavel Roskin <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>

 drivers/net/wireless/orinoco.c |   18 +++++++++++-------
 1 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/drivers/net/wireless/orinoco.c b/drivers/net/wireless/orinoco.c
--- a/drivers/net/wireless/orinoco.c
+++ b/drivers/net/wireless/orinoco.c
@@ -1053,8 +1053,9 @@ static void orinoco_join_ap(struct net_d
                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_d
         * 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,
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to