a) it's only called once
b) it get's called with band == 0, but setting a field in priv to 0 is
superfluous (priv is kzalloc'ed anyway), so parameter "band" can go
away
c) memsetting priv->regiontable is not necessary, too
d) it get's called with both priv and priv->regioncode, so the former
parameter is superfluous
Signed-off-by: Holger Schurig <[email protected]>
--- linux-wl.orig/drivers/net/wireless/libertas/cmd.c
+++ linux-wl/drivers/net/wireless/libertas/cmd.c
@@ -174,7 +174,7 @@ int lbs_update_hw_spec(struct lbs_privat
if (priv->mesh_dev)
memcpy(priv->mesh_dev->dev_addr, priv->current_addr, ETH_ALEN);
- if (lbs_set_regiontable(priv, priv->regioncode, 0)) {
+ if (lbs_set_regiontable(priv)) {
ret = -1;
goto out;
}
--- linux-wl.orig/drivers/net/wireless/libertas/scan.c
+++ linux-wl/drivers/net/wireless/libertas/scan.c
@@ -272,7 +272,7 @@ static struct chan_freq_power *lbs_get_r
return NULL;
}
-int lbs_set_regiontable(struct lbs_private *priv, u8 region, u8 band)
+int lbs_set_regiontable(struct lbs_private *priv)
{
int ret = 0;
int i = 0;
@@ -282,21 +282,18 @@ int lbs_set_regiontable(struct lbs_priva
lbs_deb_enter(LBS_DEB_MAIN);
- memset(priv->region_channel, 0, sizeof(priv->region_channel));
-
- cfp = lbs_get_region_cfp_table(region, &cfp_no);
+ cfp = lbs_get_region_cfp_table(priv->regioncode, &cfp_no);
if (cfp != NULL) {
priv->region_channel[i].nrcfp = cfp_no;
priv->region_channel[i].CFP = cfp;
} else {
lbs_deb_main("wrong region code %#x in band B/G\n",
- region);
+ priv->regioncode);
ret = -1;
goto out;
}
priv->region_channel[i].valid = 1;
- priv->region_channel[i].region = region;
- priv->region_channel[i].band = band;
+ priv->region_channel[i].region = priv->regioncode;
i++;
out:
lbs_deb_leave_args(LBS_DEB_MAIN, "ret %d", ret);
--- linux-wl.orig/drivers/net/wireless/libertas/scan.h
+++ linux-wl/drivers/net/wireless/libertas/scan.h
@@ -46,7 +46,7 @@ struct region_channel {
int lbs_ssid_cmp(u8 *ssid1, u8 ssid1_len, u8 *ssid2, u8 ssid2_len);
-int lbs_set_regiontable(struct lbs_private *priv, u8 region, u8 band);
+int lbs_set_regiontable(struct lbs_private *priv);
int lbs_send_specific_ssid_scan(struct lbs_private *priv, u8 *ssid,
u8 ssid_len);
--
http://www.holgerschurig.de