[PATCH, take 2] libertas: clean up scan debug messages

Dan Williams dcbw at redhat.com
Tue Oct 9 10:13:49 EDT 2007


On Tue, 2007-10-09 at 14:15 +0200, Holger Schurig wrote:
> * make scan debug output cleaner
> * change some LBS_DEB_ASSOC messages to LBS_DEB_SCAN, which is more correct
> * move helper functions together
> * print function return value in the tracing code at one central location
> 
> Signed-off-by: Holger Schurig <hs4233 at mail.mn-solutions.de>

Acked-by: Dan Williams <dcbw at redhat.com>

> ---
> 
> Index: libertas-2.6/drivers/net/wireless/libertas/scan.c
> ===================================================================
> --- libertas-2.6.orig/drivers/net/wireless/libertas/scan.c	2007-10-09 14:38:35.000000000 +0200
> +++ libertas-2.6/drivers/net/wireless/libertas/scan.c	2007-10-09 15:12:49.000000000 +0200
> @@ -65,6 +65,15 @@
>  static const u8 zeromac[ETH_ALEN] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
>  static const u8 bcastmac[ETH_ALEN] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
>  
> +
> +
> +
> +/*********************************************************************/
> +/*                                                                   */
> +/*  Misc helper functions                                            */
> +/*                                                                   */
> +/*********************************************************************/
> +
>  static inline void clear_bss_descriptor (struct bss_descriptor * bss)
>  {
>  	/* Don't blow away ->list, just BSS data */
> @@ -165,7 +174,7 @@ static int is_network_compatible(wlan_ad
>  {
>  	int matched = 0;
>  
> -	lbs_deb_enter(LBS_DEB_ASSOC);
> +	lbs_deb_enter(LBS_DEB_SCAN);
>  
>  	if (bss->mode != mode)
>  		goto done;
> @@ -214,13 +223,41 @@ static int is_network_compatible(wlan_ad
>  	       (bss->capability & WLAN_CAPABILITY_PRIVACY));
>  
>  done:
> -	lbs_deb_leave(LBS_DEB_SCAN);
> +	lbs_deb_leave_args(LBS_DEB_SCAN, "matched: %d", matched);
>  	return matched;
>  }
>  
>  /**
> + *  @brief Compare two SSIDs
> + *
> + *  @param ssid1    A pointer to ssid to compare
> + *  @param ssid2    A pointer to ssid to compare
> + *
> + *  @return         0--ssid is same, otherwise is different
> + */
> +int libertas_ssid_cmp(u8 *ssid1, u8 ssid1_len, u8 *ssid2, u8 ssid2_len)
> +{
> +	if (ssid1_len != ssid2_len)
> +		return -1;
> +
> +	return memcmp(ssid1, ssid2, ssid1_len);
> +}
> +
> +
> +
> +
> +/*********************************************************************/
> +/*                                                                   */
> +/*  Main scanning support                                            */
> +/*                                                                   */
> +/*********************************************************************/
> +
> +
> +/**
>   *  @brief Create a channel list for the driver to scan based on region info
>   *
> + *  Only used from wlan_scan_setup_scan_config()
> + *
>   *  Use the driver region/band information to construct a comprehensive list
>   *    of channels to scan.  This routine is used for any scan that is not
>   *    provided a specific channel list to scan.
> @@ -248,6 +285,8 @@ static void wlan_scan_create_channel_lis
>  	int nextchan;
>  	u8 scantype;
>  
> +	lbs_deb_enter_args(LBS_DEB_SCAN, "filteredscan %d", filteredscan);
> +
>  	chanidx = 0;
>  
>  	/* Set the default scan type to the user specified type, will later
> @@ -384,6 +423,8 @@ wlan_scan_setup_scan_config(wlan_private
>  	int channel;
>  	int radiotype;
>  
> +	lbs_deb_enter(LBS_DEB_SCAN);
> +
>  	pscancfgout = kzalloc(MAX_SCAN_CFG_ALLOC, GFP_KERNEL);
>  	if (pscancfgout == NULL)
>  		goto out;
> @@ -481,13 +522,12 @@ wlan_scan_setup_scan_config(wlan_private
>  
>  	if (!puserscanin || !puserscanin->chanlist[0].channumber) {
>  		/* Create a default channel scan list */
> -		lbs_deb_scan("Scan: Creating full region channel list\n");
> +		lbs_deb_scan("creating full region channel list\n");
>  		wlan_scan_create_channel_list(priv, pscanchanlist,
>  					      *pfilteredscan);
>  		goto out;
>  	}
>  
> -	lbs_deb_scan("Scan: Using supplied channel list\n");
>  	for (chanidx = 0;
>  	     chanidx < WLAN_IOCTL_USER_SCAN_CHAN_MAX
>  	     && puserscanin->chanlist[chanidx].channumber; chanidx++) {
> @@ -529,7 +569,7 @@ wlan_scan_setup_scan_config(wlan_private
>  	    (puserscanin->chanlist[0].channumber ==
>  			       priv->adapter->curbssparams.channel)) {
>  		*pscancurrentonly = 1;
> -		lbs_deb_scan("Scan: Scanning current channel only");
> +		lbs_deb_scan("scanning current channel only");
>  	}
>  
>  out:
> @@ -539,6 +579,8 @@ out:
>  /**
>   *  @brief Construct and send multiple scan config commands to the firmware
>   *
> + *  Only used from wlan_scan_networks()
> + *
>   *  Previous routines have created a wlan_scan_cmd_config with any requested
>   *   TLVs.  This function splits the channel TLV into maxchanperscan lists
>   *   and sends the portion of the channel TLV along with the other TLVs
> @@ -576,12 +618,14 @@ static int wlan_scan_channel_list(wlan_p
>  	int scanned = 0;
>  	union iwreq_data wrqu;
>  
> -	lbs_deb_enter(LBS_DEB_ASSOC);
> +	lbs_deb_enter_args(LBS_DEB_SCAN, "maxchanperscan %d, filteredscan %d, "
> +		"full_scan %d", maxchanperscan, filteredscan, full_scan);
>  
>  	if (!pscancfgout || !pchantlvout || !pscanchanlist) {
> -		lbs_deb_scan("Scan: Null detect: %p, %p, %p\n",
> -		       pscancfgout, pchantlvout, pscanchanlist);
> -		return -1;
> +		lbs_deb_scan("pscancfgout, pchantlvout or "
> +			"pscanchanlist is NULL\n");
> +		ret = -1;
> +		goto out;
>  	}
>  
>  	pchantlvout->header.type = cpu_to_le16(TLV_TYPE_CHANLIST);
> @@ -613,9 +657,10 @@ static int wlan_scan_channel_list(wlan_p
>  		while (tlvidx < maxchanperscan && ptmpchan->channumber
>  		       && !doneearly && scanned < 2) {
>  
> -			lbs_deb_scan("Scan: Chan(%3d), Radio(%d), mode(%d,%d), "
> -			             "Dur(%d)\n",
> -			             ptmpchan->channumber, ptmpchan->radiotype,
> +			lbs_deb_scan("channel %d, radio %d, passive %d, "
> +				"dischanflt %d, maxscantime %d\n",
> +				ptmpchan->channumber,
> +				ptmpchan->radiotype,
>  			             ptmpchan->chanscanmode.passivescan,
>  			             ptmpchan->chanscanmode.disablechanfilt,
>  			             ptmpchan->maxscantime);
> @@ -700,20 +745,25 @@ done:
>  		wireless_send_event(priv->dev, SIOCGIWSCAN, &wrqu, NULL);
>  	}
>  
> +out:
>  	lbs_deb_leave_args(LBS_DEB_SCAN, "ret %d", ret);
>  	return ret;
>  }
>  
> -static void
> -clear_selected_scan_list_entries(wlan_adapter * adapter,
> -                                 const struct wlan_ioctl_user_scan_cfg * scan_cfg)
> +/*
> + * Only used from wlan_scan_networks()
> +*/
> +static void clear_selected_scan_list_entries(wlan_adapter *adapter,
> +	const struct wlan_ioctl_user_scan_cfg *scan_cfg)
>  {
> -	struct bss_descriptor * bss;
> -	struct bss_descriptor * safe;
> +	struct bss_descriptor *bss;
> +	struct bss_descriptor *safe;
>  	u32 clear_ssid_flag = 0, clear_bssid_flag = 0;
>  
> +	lbs_deb_enter(LBS_DEB_SCAN);
> +
>  	if (!scan_cfg)
> -		return;
> +		goto out;
>  
>  	if (scan_cfg->clear_ssid && scan_cfg->ssid_len)
>  		clear_ssid_flag = 1;
> @@ -725,7 +775,7 @@ clear_selected_scan_list_entries(wlan_ad
>  	}
>  
>  	if (!clear_ssid_flag && !clear_bssid_flag)
> -		return;
> +		goto out;
>  
>  	mutex_lock(&adapter->lock);
>  	list_for_each_entry_safe (bss, safe, &adapter->network_list, list) {
> @@ -748,12 +798,16 @@ clear_selected_scan_list_entries(wlan_ad
>  		}
>  	}
>  	mutex_unlock(&adapter->lock);
> +out:
> +	lbs_deb_leave(LBS_DEB_SCAN);
>  }
>  
> 
>  /**
>   *  @brief Internal function used to start a scan based on an input config
>   *
> + *  Also used from debugfs
> + *
>   *  Use the input user scan configuration information when provided in
>   *    order to send the appropriate scan commands to firmware to populate or
>   *    update the internal driver scan table
> @@ -761,6 +815,7 @@ clear_selected_scan_list_entries(wlan_ad
>   *  @param priv          A pointer to wlan_private structure
>   *  @param puserscanin   Pointer to the input configuration for the requested
>   *                       scan.
> + *  @param full_scan     ???
>   *
>   *  @return              0 or < 0 if error
>   */
> @@ -781,7 +836,7 @@ int wlan_scan_networks(wlan_private * pr
>  	int i = 0;
>  #endif
>  
> -	lbs_deb_enter(LBS_DEB_SCAN);
> +	lbs_deb_enter_args(LBS_DEB_SCAN, "full_scan %d", full_scan);
>  
>  	/* Cancel any partial outstanding partial scans if this scan
>  	 * is a full scan.
> @@ -832,8 +887,9 @@ int wlan_scan_networks(wlan_private * pr
>  #ifdef CONFIG_LIBERTAS_DEBUG
>  	/* Dump the scan table */
>  	mutex_lock(&adapter->lock);
> +	lbs_deb_scan("The scan table contains:\n");
>  	list_for_each_entry (iter_bss, &adapter->network_list, list) {
> -		lbs_deb_scan("Scan:(%02d) " MAC_FMT ", RSSI[%03d], SSID[%s]\n",
> +		lbs_deb_scan("scan %02d, " MAC_FMT ", RSSI, %d, SSID '%s'\n",
>  		       i++, MAC_ARG(iter_bss->bssid), (s32) iter_bss->rssi,
>  		       escape_essid(iter_bss->ssid, iter_bss->ssid_len));
>  	}
> @@ -884,7 +940,7 @@ static int libertas_process_bss(struct b
>  	u16 beaconsize = 0;
>  	int ret;
>  
> -	lbs_deb_enter(LBS_DEB_ASSOC);
> +	lbs_deb_enter(LBS_DEB_SCAN);
>  
>  	if (*bytesleft >= sizeof(beaconsize)) {
>  		/* Extract & convert beacon size from the command buffer */
> @@ -896,7 +952,8 @@ static int libertas_process_bss(struct b
>  	if (beaconsize == 0 || beaconsize > *bytesleft) {
>  		*pbeaconinfo += *bytesleft;
>  		*bytesleft = 0;
> -		return -1;
> +		ret = -1;
> +		goto done;
>  	}
>  
>  	/* Initialize the current working beacon pointer for this BSS iteration */
> @@ -913,7 +970,8 @@ static int libertas_process_bss(struct b
>  
>  	if ((end - pos) < 12) {
>  		lbs_deb_scan("process_bss: Not enough bytes left\n");
> -		return -1;
> +		ret = -1;
> +		goto done;
>  	}
>  
>  	/*
> @@ -1089,38 +1147,26 @@ done:
>  }
>  
>  /**
> - *  @brief Compare two SSIDs
> - *
> - *  @param ssid1    A pointer to ssid to compare
> - *  @param ssid2    A pointer to ssid to compare
> - *
> - *  @return         0--ssid is same, otherwise is different
> - */
> -int libertas_ssid_cmp(u8 *ssid1, u8 ssid1_len, u8 *ssid2, u8 ssid2_len)
> -{
> -	if (ssid1_len != ssid2_len)
> -		return -1;
> -
> -	return memcmp(ssid1, ssid2, ssid1_len);
> -}
> -
> -/**
>   *  @brief This function finds a specific compatible BSSID in the scan list
>   *
> + *  Used in association code
> + *
>   *  @param adapter  A pointer to wlan_adapter
>   *  @param bssid    BSSID to find in the scan list
>   *  @param mode     Network mode: Infrastructure or IBSS
>   *
>   *  @return         index in BSSID list, or error return code (< 0)
>   */
> -struct bss_descriptor * libertas_find_bssid_in_list(wlan_adapter * adapter,
> +struct bss_descriptor *libertas_find_bssid_in_list(wlan_adapter * adapter,
>  		u8 * bssid, u8 mode)
>  {
>  	struct bss_descriptor * iter_bss;
>  	struct bss_descriptor * found_bss = NULL;
>  
> +	lbs_deb_enter(LBS_DEB_SCAN);
> +
>  	if (!bssid)
> -		return NULL;
> +		goto out;
>  
>  	lbs_deb_hex(LBS_DEB_SCAN, "looking for",
>  		bssid, ETH_ALEN);
> @@ -1147,12 +1193,16 @@ struct bss_descriptor * libertas_find_bs
>  	}
>  	mutex_unlock(&adapter->lock);
>  
> +out:
> +	lbs_deb_leave_args(LBS_DEB_SCAN, "found_bss %p", found_bss);
>  	return found_bss;
>  }
>  
>  /**
>   *  @brief This function finds ssid in ssid list.
>   *
> + *  Used in association code
> + *
>   *  @param adapter  A pointer to wlan_adapter
>   *  @param ssid     SSID to find in the list
>   *  @param bssid    BSSID to qualify the SSID selection (if provided)
> @@ -1169,6 +1219,8 @@ struct bss_descriptor * libertas_find_ss
>  	struct bss_descriptor * found_bss = NULL;
>  	struct bss_descriptor * tmp_oldest = NULL;
>  
> +	lbs_deb_enter(LBS_DEB_SCAN);
> +
>  	mutex_lock(&adapter->lock);
>  
>  	list_for_each_entry (iter_bss, &adapter->network_list, list) {
> @@ -1213,6 +1265,7 @@ struct bss_descriptor * libertas_find_ss
>  
>  out:
>  	mutex_unlock(&adapter->lock);
> +	lbs_deb_leave_args(LBS_DEB_SCAN, "found_bss %p", found_bss);
>  	return found_bss;
>  }
>  
> @@ -1233,6 +1286,8 @@ static struct bss_descriptor * libertas_
>  	struct bss_descriptor * iter_bss;
>  	struct bss_descriptor * best_bss = NULL;
>  
> +	lbs_deb_enter(LBS_DEB_SCAN);
> +
>  	mutex_lock(&adapter->lock);
>  
>  	list_for_each_entry (iter_bss, &adapter->network_list, list) {
> @@ -1257,12 +1312,15 @@ static struct bss_descriptor * libertas_
>  	}
>  
>  	mutex_unlock(&adapter->lock);
> +	lbs_deb_leave_args(LBS_DEB_SCAN, "best_bss %p", best_bss);
>  	return best_bss;
>  }
>  
>  /**
>   *  @brief Find the AP with specific ssid in the scan list
>   *
> + *  Used from association worker.
> + *
>   *  @param priv         A pointer to wlan_private structure
>   *  @param pSSID        A pointer to AP's ssid
>   *
> @@ -1275,11 +1333,11 @@ int libertas_find_best_network_ssid(wlan
>  	int ret = -1;
>  	struct bss_descriptor * found;
>  
> -	lbs_deb_enter(LBS_DEB_ASSOC);
> +	lbs_deb_enter(LBS_DEB_SCAN);
>  
>  	wlan_scan_networks(priv, NULL, 1);
>  	if (adapter->surpriseremoved)
> -		return -1;
> +		goto out;
>  
>  	wait_event_interruptible(adapter->cmd_pending, !adapter->nr_cmd_pending);
>  
> @@ -1291,6 +1349,7 @@ int libertas_find_best_network_ssid(wlan
>  		ret = 0;
>  	}
>  
> +out:
>  	lbs_deb_leave_args(LBS_DEB_SCAN, "ret %d", ret);
>  	return ret;
>  }
> @@ -1325,10 +1384,17 @@ int libertas_set_scan(struct net_device 
>  	return 0;
>  }
>  
> +
>  /**
>   *  @brief Send a scan command for all available channels filtered on a spec
>   *
> + *  Used in association code and from debugfs
> + *
>   *  @param priv             A pointer to wlan_private structure
> + *  @param ssid             A pointer to the SSID to scan for
> + *  @param ssid_len         Length of the SSID
> + *  @param clear_ssid       Should existing scan results with this SSID
> + *                          be cleared?
>   *  @param prequestedssid   A pointer to AP's ssid
>   *  @param keeppreviousscan Flag used to save/clear scan table before scan
>   *
> @@ -1341,7 +1407,8 @@ int libertas_send_specific_ssid_scan(wla
>  	struct wlan_ioctl_user_scan_cfg scancfg;
>  	int ret = 0;
>  
> -	lbs_deb_enter(LBS_DEB_ASSOC);
> +	lbs_deb_enter_args(LBS_DEB_SCAN, "SSID '%s', clear %d",
> +		escape_essid(ssid, ssid_len), clear_ssid);
>  
>  	if (!ssid_len)
>  		goto out;
> @@ -1352,15 +1419,26 @@ int libertas_send_specific_ssid_scan(wla
>  	scancfg.clear_ssid = clear_ssid;
>  
>  	wlan_scan_networks(priv, &scancfg, 1);
> -	if (adapter->surpriseremoved)
> -		return -1;
> +	if (adapter->surpriseremoved) {
> +		ret = -1;
> +		goto out;
> +	}
>  	wait_event_interruptible(adapter->cmd_pending, !adapter->nr_cmd_pending);
>  
>  out:
> -	lbs_deb_leave(LBS_DEB_ASSOC);
> +	lbs_deb_leave_args(LBS_DEB_SCAN, "ret %d", ret);
>  	return ret;
>  }
>  
> +
> +
> +
> +/*********************************************************************/
> +/*                                                                   */
> +/*  Support for Wireless Extensions                                  */
> +/*                                                                   */
> +/*********************************************************************/
> +
>  #define MAX_CUSTOM_LEN 64
>  
>  static inline char *libertas_translate_scan(wlan_private *priv,
> @@ -1377,10 +1455,13 @@ static inline char *libertas_translate_s
>  #define RSSI_DIFF    ((u8)(PERFECT_RSSI - WORST_RSSI))
>  	u8 rssi;
>  
> +	lbs_deb_enter(LBS_DEB_SCAN);
> +
>  	cfp = libertas_find_cfp_by_band_and_channel(adapter, 0, bss->channel);
>  	if (!cfp) {
>  		lbs_deb_scan("Invalid channel number %d\n", bss->channel);
> -		return NULL;
> +		start = NULL;
> +		goto out;
>  	}
>  
>  	/* First entry *MUST* be the AP BSSID */
> @@ -1508,11 +1589,13 @@ static inline char *libertas_translate_s
>  			start = iwe_stream_add_point(start, stop, &iwe, custom);
>  	}
>  
> +out:
> +	lbs_deb_leave_args(LBS_DEB_SCAN, "start %p", start);
>  	return start;
>  }
>  
>  /**
> - *  @brief  Retrieve the scan table entries via wireless tools IOCTL call
> + *  @brief  Handle Retrieve scan table ioctl
>   *
>   *  @param dev          A pointer to net_device structure
>   *  @param info         A pointer to iw_request_info structure
> @@ -1533,7 +1616,7 @@ int libertas_get_scan(struct net_device 
>  	struct bss_descriptor * iter_bss;
>  	struct bss_descriptor * safe;
>  
> -	lbs_deb_enter(LBS_DEB_ASSOC);
> +	lbs_deb_enter(LBS_DEB_SCAN);
>  
>  	/* Update RSSI if current BSS is a locally created ad-hoc BSS */
>  	if ((adapter->mode == IW_MODE_ADHOC) && adapter->adhoccreate) {
> @@ -1575,19 +1658,27 @@ int libertas_get_scan(struct net_device 
>  	dwrq->length = (ev - extra);
>  	dwrq->flags = 0;
>  
> -	lbs_deb_leave(LBS_DEB_ASSOC);
> +	lbs_deb_leave_args(LBS_DEB_SCAN, "ret %d", err);
>  	return err;
>  }
>  
> +
> +
> +
> +/*********************************************************************/
> +/*                                                                   */
> +/*  Command execution                                                */
> +/*                                                                   */
> +/*********************************************************************/
> +
> +
>  /**
>   *  @brief Prepare a scan command to be sent to the firmware
>   *
> - *  Use the wlan_scan_cmd_config sent to the command processing module in
> - *   the libertas_prepare_and_send_command to configure a cmd_ds_802_11_scan command
> - *   struct to send to firmware.
> + *  Called from libertas_prepare_and_send_command() in cmd.c
>   *
> - *  The fixed fields specifying the BSS type and BSSID filters as well as a
> - *   variable number/length of TLVs are sent in the command to firmware.
> + *  Sends a fixed lenght data part (specifying the BSS type and BSSID filters)
> + *  as well as a variable number/length of TLVs to the firmware.
>   *
>   *  @param priv       A pointer to wlan_private structure
>   *  @param cmd        A pointer to cmd_ds_command structure to be sent to
> @@ -1596,18 +1687,14 @@ int libertas_get_scan(struct net_device 
>   *                    to set the fields/TLVs for the command sent to firmware
>   *
>   *  @return           0 or -1
> - *
> - *  @sa wlan_scan_create_channel_list
>   */
>  int libertas_cmd_80211_scan(wlan_private * priv,
>  			 struct cmd_ds_command *cmd, void *pdata_buf)
>  {
>  	struct cmd_ds_802_11_scan *pscan = &cmd->params.scan;
> -	struct wlan_scan_cmd_config *pscancfg;
> -
> -	lbs_deb_enter(LBS_DEB_ASSOC);
> +	struct wlan_scan_cmd_config *pscancfg = pdata_buf;
>  
> -	pscancfg = pdata_buf;
> +	lbs_deb_enter(LBS_DEB_SCAN);
>  
>  	/* Set fixed field variables in scan command */
>  	pscan->bsstype = pscancfg->bsstype;
> @@ -1620,11 +1707,11 @@ int libertas_cmd_80211_scan(wlan_private
>  	cmd->size = cpu_to_le16(sizeof(pscan->bsstype) + ETH_ALEN
>  				+ pscancfg->tlvbufferlen + S_DS_GEN);
>  
> -	lbs_deb_scan("SCAN_CMD: command=%x, size=%x, seqnum=%x\n",
> +	lbs_deb_scan("SCAN_CMD: command 0x%04x, size %d, seqnum %d\n",
>  		     le16_to_cpu(cmd->command), le16_to_cpu(cmd->size),
>  		     le16_to_cpu(cmd->seqnum));
>  
> -	lbs_deb_leave(LBS_DEB_ASSOC);
> +	lbs_deb_leave(LBS_DEB_SCAN);
>  	return 0;
>  }
>  
> @@ -1643,6 +1730,8 @@ static inline int is_same_network(struct
>  /**
>   *  @brief This function handles the command response of scan
>   *
> + *  Called from handle_cmd_response() in cmdrespc.
> + *
>   *   The response buffer for the scan command has the following
>   *      memory layout:
>   *
> @@ -1677,7 +1766,7 @@ int libertas_ret_80211_scan(wlan_private
>  	int tlvbufsize;
>  	int ret;
>  
> -	lbs_deb_enter(LBS_DEB_ASSOC);
> +	lbs_deb_enter(LBS_DEB_SCAN);
>  
>  	/* Prune old entries from scan table */
>  	list_for_each_entry_safe (iter_bss, safe, &adapter->network_list, list) {
> Index: libertas-2.6/drivers/net/wireless/libertas/join.c
> ===================================================================
> --- libertas-2.6.orig/drivers/net/wireless/libertas/join.c	2007-10-09 14:38:35.000000000 +0200
> +++ libertas-2.6/drivers/net/wireless/libertas/join.c	2007-10-09 14:39:39.000000000 +0200
> @@ -797,8 +797,6 @@ int libertas_ret_80211_associate(wlan_pr
>  		netif_wake_queue(priv->mesh_dev);
>  	}
>  
> -	lbs_deb_join("ASSOC_RESP: Associated \n");
> -
>  	memcpy(wrqu.ap_addr.sa_data, adapter->curbssparams.bssid, ETH_ALEN);
>  	wrqu.ap_addr.sa_family = ARPHRD_ETHER;
>  	wireless_send_event(priv->dev, SIOCGIWAP, &wrqu, NULL);




More information about the libertas-dev mailing list