|
@@ -253,6 +253,24 @@ error:
|
|
return status;
|
|
return status;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+/**
|
|
|
|
+ * dfs_free_filter() - free memory allocated for dfs ft_filters
|
|
|
|
+ * @radarf: pointer holding ft_filters
|
|
|
|
+ *
|
|
|
|
+ * Return: NA
|
|
|
|
+*/
|
|
|
|
+static void dfs_free_filter(struct dfs_filtertype *radarf)
|
|
|
|
+{
|
|
|
|
+ int i;
|
|
|
|
+
|
|
|
|
+ for (i = 0; i < DFS_MAX_NUM_RADAR_FILTERS; i++) {
|
|
|
|
+ if (radarf->ft_filters[i]) {
|
|
|
|
+ qdf_mem_free(radarf->ft_filters[i]);
|
|
|
|
+ radarf->ft_filters[i] = NULL;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
int dfs_attach(struct ieee80211com *ic)
|
|
int dfs_attach(struct ieee80211com *ic)
|
|
{
|
|
{
|
|
int i, n;
|
|
int i, n;
|
|
@@ -440,11 +458,20 @@ int dfs_attach(struct ieee80211com *ic)
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
bad2:
|
|
bad2:
|
|
- OS_FREE(dfs->dfs_radartable);
|
|
|
|
- dfs->dfs_radartable = NULL;
|
|
|
|
|
|
+ if (dfs->dfs_radartable != NULL) {
|
|
|
|
+ for (n = 0; n < 256; n++) {
|
|
|
|
+ if (dfs->dfs_radartable[n] != NULL) {
|
|
|
|
+ OS_FREE(dfs->dfs_radartable[n]);
|
|
|
|
+ dfs->dfs_radartable[n] = NULL;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ OS_FREE(dfs->dfs_radartable);
|
|
|
|
+ dfs->dfs_radartable = NULL;
|
|
|
|
+ }
|
|
bad1:
|
|
bad1:
|
|
for (n = 0; n < DFS_MAX_RADAR_TYPES; n++) {
|
|
for (n = 0; n < DFS_MAX_RADAR_TYPES; n++) {
|
|
if (dfs->dfs_radarf[n] != NULL) {
|
|
if (dfs->dfs_radarf[n] != NULL) {
|
|
|
|
+ dfs_free_filter(dfs->dfs_radarf[n]);
|
|
OS_FREE(dfs->dfs_radarf[n]);
|
|
OS_FREE(dfs->dfs_radarf[n]);
|
|
dfs->dfs_radarf[n] = NULL;
|
|
dfs->dfs_radarf[n] = NULL;
|
|
}
|
|
}
|
|
@@ -471,23 +498,6 @@ bad1:
|
|
#undef N
|
|
#undef N
|
|
}
|
|
}
|
|
|
|
|
|
-/**
|
|
|
|
- * dfs_free_filter() - free memory allocated for dfs ft_filters
|
|
|
|
- * @radarf: pointer holding ft_filters
|
|
|
|
- *
|
|
|
|
- * Return: NA
|
|
|
|
-*/
|
|
|
|
-static void dfs_free_filter(struct dfs_filtertype *radarf)
|
|
|
|
-{
|
|
|
|
- int i;
|
|
|
|
-
|
|
|
|
- for (i = 0; i < DFS_MAX_NUM_RADAR_FILTERS; i++) {
|
|
|
|
- if (radarf->ft_filters[i]) {
|
|
|
|
- qdf_mem_free(radarf->ft_filters[i]);
|
|
|
|
- radarf->ft_filters[i] = NULL;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
void dfs_detach(struct ieee80211com *ic)
|
|
void dfs_detach(struct ieee80211com *ic)
|
|
{
|
|
{
|
|
struct ath_dfs *dfs = (struct ath_dfs *)ic->ic_dfs;
|
|
struct ath_dfs *dfs = (struct ath_dfs *)ic->ic_dfs;
|